﻿
//数据库操作，给定连接配置，包含(连接字符串，连接的数据库类型，以及其他非必要功能(主键，自动关闭连接))
// private readonly SqlSugarClient db_mysql = Mysqloperations.DbContext_mysql;
// public static SqlSugarClient DbContext_mysql { get; } = new SqlSugarClient(new ConnectionConfig
// {
//SqlSugarClient是一个数据库操作客户端，用于连接和操作数据库。
//通过new SqlSugarClient(new ConnectionConfig {...})来初始化           //首先，需要导入MySQL的命名空间，并定义连接字符串。连接字符串包含服务器地址、
//                                                                     数据库名称、用户名和密码等信息。
//  ConnectionString = "server=localhost;database=person;user id=root;password=wtw20070519;pooling=true;",//指定了数据库连接字符串

/*这是连接 MySQL 数据库的关键配置，格式为 key1 = value1; key2 = value2; ...。常用参数包括：
    server：数据库服务器地址（如 localhost 或 IP 地址）
    database：要连接的数据库名称（如 test1）
    user id：用户名（如 root）
    password：密码（如 root）
    pooling：是否启用连接池（true 或 false）
    charset：字符集（如 utf8 或 utf8mb4）*/

//     using SqlSugar;

//    DbType = SqlSugar.DbType.MySql,//明确数据库类型 支持多种数据库（如 SQL Server、MySQL、Oracle 等）
//   IsAutoCloseConnection = true,//IsAutoCloseConnection设置为true表示自动关闭数据库连接；
//    InitKeyType = InitKeyType.Attribute //识别主键 通过实体类的属性特性（如 [SugarColumn(IsPrimaryKey = true)]）？
// });

//初始化表，创建表格检查表存在，
//其他操作



//总结
//using SqlSugar;

//SqlSugarClient 是 SqlSugar 框架的核心类，用于创建一个数据库操作客户端，负责与数据库建立连接并执行各种数据库操作。
//通过配置 ConnectionConfig 对象来初始化 SqlSugarClient，可以指定数据库连接字符串、数据库类型、是否自动关闭连接等信息，从而实现对不同类型数据库的操作。
//ConnectionString：指定数据库连接字符串，包含服务器地址、数据库名称、用户名、密码等信息，用于建立与数据库的连接。
//DbType：明确数据库类型，SqlSugar 支持多种数据库，如 SQL Server、MySQL、Oracle 等，通过该属性可以指定要操作的数据库类型。
//IsAutoCloseConnection：设置为 true 表示自动关闭数据库连接，在每次数据库操作完成后会自动释放连接资源。
//InitKeyType：指定主键的识别方式，InitKeyType.Attribute 表示通过实体类的属性特性（如 [SugarColumn(IsPrimaryKey = true)]）来识别主键。
//Insertable 是 SqlSugar 提供的插入操作方法，用于将实体对象插入到数据库中。


//public void AddPerson(Person person)
//{
// var identity = db_mysql.Insertable(person).ExecuteReturnIdentity();
// person.Id = Convert.ToInt32(identity);
//}



//public void DeletePerson(Person person)
//{
// 方法1: 通过实体对象删除
//  db_mysql.Deleteable(person).ExecuteCommand();

// 方法2: 通过主键值删除(更推荐)
// db_mysql.Deleteable<Person>().In(person.Id).ExecuteCommand();
//}



//public void UpdatePerson(Person person)
//{
//    db_mysql.Updateable(person).ExecuteCommand();
//}



//public List<Person> GetAllPersons()
//{
//  return db_mysql.Queryable<Person>().ToList();
//}



//public List<Person> GetPersonsByNativeSql()
//{
  //  string sql = "SELECT * FROM Persons";
    //return db_mysql.Ado.SqlQuery<Person>(sql);
//}